home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / DB_CLIPP / 2510.ZIP / TRSOURCE.EXE / RESTSCR.C < prev    next >
C/C++ Source or Header  |  1990-10-22  |  2KB  |  76 lines

  1. /*********
  2. *  restscr.c 
  3. *  by Leonard Zerman
  4. * Placed in the public domain by Tom Rettig Associates, 10/22/1990.
  5. *
  6. *  Syntax: RESTSCR( <expC>[, <expC>[,<expC>]])
  7. *  Return: <expL> .T.if saves else .F. 
  8. ********/
  9.  
  10. #include "trlib.h"
  11.  
  12. TRTYPE restscr() 
  13. {
  14.    static char fnamebuff[66];
  15.    static char extention[] = ".SCN";
  16.    char * fname;
  17.    char * memvarptr;
  18.    char * coloropt;
  19.    char * scrptr;
  20.    int len, memvarlen;
  21.    int fhandle;
  22.    int i;
  23.  
  24.    if (PCOUNT == 1 && ISCHAR(1) ||
  25.       (PCOUNT == 2 && ISCHAR(1) && ISCHAR(2)) ||
  26.       (PCOUNT == 3 && ISCHAR(1) && ISCHAR(2) && ISCHAR(3)))
  27.    {
  28.        fname = _parc(1);
  29.        memvarlen = 0;
  30.  
  31.        if (PCOUNT > 1)
  32.        {
  33.           memvarptr = _parc(2);
  34.           memvarlen = _parclen(2);
  35.        }
  36.        if (PCOUNT == 3)
  37.           coloropt = _parc(3);
  38.  
  39.        len = _tr_strlen(fname);
  40.        _tr_strcpy(fnamebuff,fname);
  41.        for(i = 0;i < len && fnamebuff[i] != '.'; i++)
  42.           ;
  43.        if (i == len)
  44.           _tr_strcat(fnamebuff,extention);
  45.  
  46.        fhandle = _tr_open(fnamebuff,0);
  47.        if (fhandle == ERRORNEG)
  48.        {
  49.           _retl(FALSE);
  50.           return;
  51.        }
  52.  
  53.        if (_tr_iscolor())
  54.           scrptr = MK_FP(COLOR_VID_AD,0);
  55.        else
  56.           scrptr = MK_FP(MONO_VID_AD,0);
  57.  
  58.        if (PCOUNT == 3)
  59.        {
  60.           if(toupper(*coloropt) == 'G')
  61.           {
  62.              scrptr = MK_FP(COLOR_VID_AD,0);
  63.           }
  64.        }
  65.        if (PCOUNT > 1 && memvarlen)
  66.           scrptr = memvarptr;
  67.  
  68.        _tr_read(fhandle,scrptr,4000);
  69.        _tr_close(fhandle);
  70.        _retl(TRUE);
  71.    }
  72.    else
  73.       _retl(FALSE);
  74. }
  75. /*********************** eof savescr ***************************************/
  76.